/*
*  Copyright 2020  Michail Vourlakos <mvourlakos@gmail.com>
*
*  This file is part of Latte-Dock
*
*  Latte-Dock is free software; you can redistribute it and/or
*  modify it under the terms of the GNU General Public License as
*  published by the Free Software Foundation; either version 2 of
*  the License, or (at your option) any later version.
*
*  Latte-Dock is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7

import org.kde.plasma.core 2.0 as PlasmaCore

AbilityGridPrivate {
    id: grid

    //! do not update during dragging/moving applets inConfigureAppletsMode
    readonly property bool updateIsBlocked: root.dragOverlay && root.dragOverlay.pressed

    Binding{
        target: ability.parabolic
        property: "restoreZoomIsBlocked"
        when: !updateIsBlocked
        value: {
            for (var i=0; i<grid.children.length; ++i){
                var appletItem = grid.children[i];
                if (appletItem
                        && appletItem.communicator
                        && appletItem.communicator.parabolicEffectIsSupported
                        && appletItem.communicator.bridge.parabolic.client.local.restoreZoomIsBlocked) {
                    return true;
                }
            }

            return false;
        }
    }

    Binding{
        target: ability.require
        property: "windowsTrackingCount"
        when: !updateIsBlocked
        value: {
            var cnts = 0;

            for (var i=0; i<grid.children.length; ++i){
                var appletItem = grid.children[i];
                if (appletItem
                        && appletItem.communicator
                        && appletItem.communicator.requires.windowsTrackingEnabled) {
                    cnts = cnts + 1;
                }
            }

            return cnts;
        }
    }
}
